package cn.itcast.nems.studentrecord.dao.entity;

import cn.itcast.nems.common.entity.UUIDEntity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;

/**
 * <p>
 * 短训升班凭单-头
 * 主键ID;规则：前缀+6位随机字符（大写字母+数字），示例：SJ-I2Z8D8
 * </p>
 *
 * @author zhouwei
 * @since 2023/11/7 5:17 PM
 **/
@TableName(value = "e2_journal_renewal")
@Getter
@Setter
public class JournalRenewal extends UUIDEntity {
    /**
     * 业务日期;为可能的补录单子准备，如果不存在补录的情况，该字段旧等于创建时间
     */
    private LocalDateTime bizDate ;
    /**
     * 升级到到目标班级
     */
    private Integer targetClazzId ;
    /**
     * 升级到的目标班级名称
     */
    private String targetClazzName ;
    /**
     * 目标班级原始价格
     */
    private Integer targetClazzPrice;
    /**
     * 目标班级所属学科ID
     */
    private String targetClazzSubjectId ;
    /**
     * 目标班级所属学科名称
     */
    private String targetClazzSubjectName ;
    /**
     * 目标班级所在校区ID
     */
    private String targetClazzCampusId ;
    /**
     * 目标班级所在校区名称
     */
    private String targetClazzCampusName ;
    /**
     * 目标班级授课模式ID
     */
    private String targetClazzModelId ;
    /**
     * 目标班级授课模式名称
     */
    private String targetClazzModelName ;
    /**
     * 升班总学籍数
     */
    private Integer renewalQuantity ;
    /**
     * 已缴费学籍数;基于订单支付事件消息处理：订单来源为“升级”时，通过订单ID查询升级凭单订单关系表确定对应升级凭单并标记状态。
     */
    private Integer paidQuantity;
    /**
     * 状态;枚举值：草稿｜DRAFT、审批中｜PENDING、审批通过处理中｜APPROVED、审批未通过且流程结束｜REJECTED、审批通过并处理完成｜FINISHED
     */
    private String state ;
    /**
     * 特殊申请；枚举值：非特殊｜0、特殊｜1
     */
    private Boolean specialFlag;
    /**
     * 备注
     */
    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String remark;
}
